﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Linq;
using System.Data.SqlClient;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Transactions;
using BS_Gimnasio.General;
using DS_Gimnasio;

namespace BS_Gimnasio.Publicidad
{
    [DataContract()]
    public class cls_Noticias1 : cls_Base
    {
        #region Variables

        public int _idNoticia;
        public string _titulo;
        public string _body;
        public string _imagen;
        public int _idUsuario;
        public string _fecha;
        public string _role;
        public string _rutina;
        #endregion

        #region Propiedasdes

        [DataMember]
        public string role
        {
            get { return _role; }
            set { _role = value; }

        }
        [DataMember]
        public string body
        {
            get { return _body; }
            set { _body = value; }

        }
        [DataMember()]
        public int idNoticia
        {
            get { return _idNoticia; }
            set { _idNoticia = value; }
        }

        [DataMember()]
        public string titulo
        {
            get { return _titulo; }
            set { _titulo = value; }
        }
        [DataMember()]
        public string imagen
        {
            get { return _imagen; }
            set { _imagen = value; }
        }

        [DataMember()]
        public int idUsuario
        {
            get { return _idUsuario; }
            set { _idUsuario = value; }
        }
        [DataMember()]
        public string fecha
        {
            get { return _fecha; }
            set { _fecha = value; }
        }
        [DataMember()]
        public string rutina
        {
            get { return _rutina; }
            set { _rutina = value; }
        }


        #endregion Metodos Heredados

        #region Metodos Heredados
        public override bool EliminarRegistro(ref string mensajeError)
        {
            throw new NotImplementedException();
        }
        public override void InsertarActualizarRegistro(bool tipoOperacion, ref string mensajeError)
        {
            if (tipoOperacion)
            {
                InsertarRegistro(ref mensajeError);
            }

            else
            {
                //ActualizarRegistro(ref mensajeError);
            }
        }

        public override DataTable Listar(int opcion)
        {
            try
            {
                DataTable dt = new DataTable();
                if (opcion == 1)
                {   // Esta opcion debe de llenar el dropdownlist
                    using (dtacls_GimnasioDataContext db = new dtacls_GimnasioDataContext())
                    {
                        ISingleResult<SP_LISTAS_ROLESResult> Resultado = db.SP_LISTAS_ROLES();
                        //ISingleResult<SP_CORREOS_POR_RUTINAResult> Resultado = db.SP_CORREOS_POR_RUTINA(_role);
                        dt = cls_Adaptador.ToDataTable(Resultado.ToList());


                    }
                    
                }
                if (opcion == 2)
                {   // Esta opcion debe de llenar el dropdownlist
                    using (dtacls_GimnasioDataContext db = new dtacls_GimnasioDataContext())
                    {
                        ISingleResult<SP_CORREOS_POR_RUTINAResult> Resultado = db.SP_CORREOS_POR_RUTINA(_rutina);
                        //ISingleResult<SP_CORREOS_POR_RUTINAResult> Resultado = db.SP_CORREOS_POR_RUTINA(_role);
                        dt = cls_Adaptador.ToDataTable(Resultado.ToList());


                    }

                }
                return dt;
            }
            catch (SqlException ex)
            {
                NumeroError = ex.ErrorCode;
                MensajeError = ex.Message;

                return null;
            }

            catch (Exception e)
            {
                MensajeError = e.Message;

                return null;
            }

        }
        public override cls_Base TraerObjeto()
        {
            throw new NotImplementedException();
        }


        public override void OtrosProcesos(int opcion, ref object resultado)
        {
            switch (opcion)
            {
                case 1:
                    //resultado = this.PublicarNoticiasEventos();
                    break;
                case 2:
                //resultado = this.TraerImagen();
                default:
                    break;

            }
        }


        #endregion

        #region Metodos Propios

        private void InsertarRegistro(ref string mensajeError)
        {

            try
            {
                using (TransactionScope transaction = new TransactionScope())
                {
                    using (dtacls_GimnasioDataContext db = new dtacls_GimnasioDataContext())
                    {

                        db.SP_Insertar_Noticia(_titulo, _fecha, _body, _imagen, _idUsuario);

                        transaction.Complete();

                    }
                }
            }

            catch (SqlException ex)
            {
                NumeroError = ex.ErrorCode;
                MensajeError = ex.Message;
            }

            catch (Exception e)
            {
                MensajeError = e.Message;
            }
        }







        #endregion

    }

}
